home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ShareWare OnLine 2
/
ShareWare OnLine Volume 2 (CMS Software)(1993).iso
/
util1
/
dosmax21.zip
/
FREELOAD.DOC
< prev
next >
Wrap
Text File
|
1993-06-11
|
18KB
|
427 lines
================================================================================
FREELOAD.SYS : Ver. 2.1, Copyright (1992,93) by Philip B. Gardner
================================================================================
FREELOAD.SYS is a device driver which will help maximize the use of low
memory by releasing memory usually reserved in low memory by LOADHI.SYS
from Quarterdeck Office Systems.
FREELOAD.SYS tracks the high memory device loader operations and if it
is safe to release the low memory after each device initiates, the low
memory is released and the driver in upper memory is linked into the DOS
device chain.
FREELOAD.SYS can be used to save 1-2k in a typical configuration. The
actual amount of memory saved depends upon on the number and type of
device drivers loaded high.
Support is provided for:
* fully automatic support of QEMM's LOADHI.SYS and 386MAX's 386LOAD.SYS
* specifying the name and path of the device loader
* both character and block devices
* character drivers which contain an unlimited number of devices
* DOS Versions 3.1 - 3.31, DOS 4.x, and DOS 5.x (or better?)
================================================================================
(Requirements)::
* Requires MS-DOS Version 3.10 or better
================================================================================
(Installation)::
(CONFIG.SYS)::
Installation of FREELOAD.SYS requires modifying the contents of
your CONFIG.SYS file.
(Generic Configuration)::
This configuration should work and be the most efficient in 95%
of all configurations. For a few real world examples see
EXAMPLES.DOC
DOS=HIGH[,UMB] (DOS 5.0 only)
REM DEVICE=STOPMAX.SYS [options] (Stops kernel from loading in HMA)
DEVICE=(xms/umb memory manager)
DEVICE=DOSMAX.EXE [options] (DOSMAX loads high automatically)
DEVICE=FREELOAD.SYS [-S][other options]
REM DEVICE=LOADHI.SYS DOSMAX.EXE (or DOSMAX loaded high with loader)
SHELL=SHELLMAX.COM COMMAND.COM /P
BUFFERS=20
FILES=40
LASTDRIVE=Z
Add a DEVICE= line for FREELOAD.SYS in your config.sys. FREELOAD
should be loaded immediately after the XMS and UMB memory manager
DEVICE=(Memory Manager)
DEVICE=FREELOAD.SYS [options]
The default loader pathname is "C:\QEMM\LOADHI.SYS". If FREELOAD
cannot open this pathname, a message will displayed alerting you
to "Use /Fpathname to override." An example which uses this switch
is shown below:
DEVICE=FREELOAD.SYS /F D:\QEMM\LOADHI.SYS
Version 1.8 adds full 386MAX support, so if 386MAX is detected, or
the /A2 switch is used, then the default loader pathname is changed
to "C:\386MAX\386LOAD.SYS."
(Tip)::
If you prefer that a particular device driver is not affected by
the operation of FREELOAD, place the DEVICE= for that device above
the DEVICE=FREELOAD.SYS entry. This may be necessary in the case
that a particular driver is not compatible with FREELOAD.
================================================================================
(Syntax)::
The only thing to remember about syntax for the command line is
that just about anything works. What this means is that you
should be able to type in the options on the command line the
way they make sense to you.
To illustrate this point, the following command line example
is mutated several different ways.
DEVICE=FREELOAD.SYS /R+ /P+ /FC:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS -R+ -P+ -F C:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS R+ P+ F C:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS R+P+FC:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS -R+P+FC:\QEMM\LOADHI.SYS
... and so on. There must be an EOL or space following the
filename paramter the /Fpathname switch
FREELOAD 1.9 and above adds optional full word syntax. The new
syntax looks like this:
DEVICE=FREELOAD.SYS /REPORT:- /PAUSE:- /LOADER=C:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS -REPORT:- -PAUSE:- -LOADER=C:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS REPORT:- PAUSE:- LOADER=C:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS REPORT-PAUSE-LOADER=C:\QEMM\LOADHI.SYS
DEVICE=FREELOAD.SYS -REPORT-PAUSE--LOADER=C:\QEMM\LOADHI.SYS
Obviously when using full words, it is easier to keep the words
separated so that is clear to read. An optional [:] or [=] may be
used for switches (i.e. REPORT:+ or LOADER=C:\LOADHI.SYS). These
optional delimiters are used interchangeably and can also be used
with the single letter switches. Remember to check your spelling
because the single letter interface is still intact.
(Switch Options)::
The following list of switch options is organized by:
- Control of FREELOAD Reports (/R:/P:/N:)
- Override the Default Name and Path of the Loader (/F=)
- Setting the Memory Strategy (/M=)
- Overriding Directory Structure Size (/D=)
- Control the Alternate Memory Manager Method (/A=)
- Controlling the Shrink Feature (/S:)
- Response file for FREELOAD (@)
(Control of FREELOAD Reports)::
(REPORT):: R[+ or -] (toggle: default +)
Use /R- or /REPORT:- to disable the report after you are
satisfied with the configuration of DOSMAX.EXE
(PAUSE):: P[+ or -] (toggle: default +)
Use /P- or /PAUSE:- to disable the pause after the report as
long as there are no errors or warnings.
(NOPAUSE):: N[+ or -] (toggle: default -)
Use /N+ or /NOPAUSE:+ to never pause after the report, even if
there are errors. This switch can be used if your configuration
generates a warning or error message which you choose to ignore.
(Override the Default Name and Path of the Loader)::
(LOADER):: F[pathname] (string= default=C:\QEMM\LOADHI.SYS)
Use /Fpathname or /LOADER=pathname to specify the filename and path
of the device loader provided with your upper memory manager. For
example, if this device driver is on drive D:
DEVICE=FREELOAD.SYS /FD:\QEMM\LOADHI.SYS
If FREELOAD cannot find this file, it will not load.
(Setting the Memory Strategy)::
(STRATEGY):: Mn (value: n = 0)
Use /Mn or /STRATEGY=n to control the memory allocation strategy
which FREELOAD uses to allocate its upper memory block. The default
strategy is is First Fit (/M0). This means that FREELOAD will use
the first upper memory block returned by the XMS manager. The other
options are Best Fit (/M1) and Last Fit (/M2). Best Fit uses the
block which most closely matches the size needed, and Last Fit uses
the highest block big enough to handle the request. Values other
than 0, 1, or 2 are ignored and the previous setting of this option
is used.
(Overriding Directory Structure Size)::
(CDSSIZE):: Dnn (value: nn = 88)
Use /Dnn or /CDSSIZE=nn to set the Drive Table Size. Values other
than the MS-DOS 4.0 - 6.0 Drive Table Size of 88 are only allowed if
the true MS-DOS version is greater than 5.0. The Drive Table Size
for DOS 3.x is 81. The /Dnn switch is only necessary if FREELOAD
can't determine the Drive Table Size automatically.
(Control the Alternate Memory Manager Method)::
(ALTMETHOD):: An (value: n = 0)
Use /An to select the method FREELOAD uses to detect and track
high device loaders. There are 3 possible values. (0), the
default, means that FREELOAD will automatically select the proper
method. (1), method 1 is for device loaders compatible with
LOADHI.SYS from Quarterdeck. (2), method 2 is for device loaders
compatible with 386LOAD.SYS from Qualitas. This switch is included
only for debugging purposes.
(Controlling the Shrink Feature)
(SHRINK):: S[+ or -] (toggle: default -)
FREELOAD normally takes approximately 1.4K of high memory. Use /S+
or /SHRINK:+ to reduce this requirement to 16 bytes just before
the shell is loaded from CONFIG.SYS. Shrinking may cause problems
with high memory optimizers, but the switch can be safely used
after the system is optimized, to free another 1.4K of high memory.
(Response file for FREELOAD)::
Parameters for FREELOAD may be read from a response file by using the
@pathname syntax:
FREELOAD.SYS @RESPONSE.FIL
Response files may be commented by using a ";","#",or "*" character
before the comment.
* everything in square brackets "[]" is optional
(CONFIG.SYS Line)::
DEVICE=FREELOAD.SYS [/ or -][R[+]P[+]N[+]S[+]Fpathname]
device mode default: /R-/P-/N-/S-/Mn/FC:\QEMM\LOADHI.SYS
* No Report status messages
* No Pause after report
* Pause on errors or warnings
* Use the First Fit memory allocation strategy
* Default Loader Pathname = "C:\QEMM\LOADHI.SYS"
================================================================================
(Report Format)::
FREELOAD.SYS : Ver. 2.1, Copyright (1992) by Philip B. Gardner
ERROR : (Error Messages)
WARNING : (Warning Messages)
ADVICE : (Advisory Messages)
: (Report Messages)
: (Allocation Status)
PAUSE : Press any key to continue...
(Report Note)::
FREELOAD.SYS may be replaced by FREELOAD.OVL. The exact name of the
module is dependent upon the circumstances under which FREELOAD.SYS
reports. This detail is important only as diagnostic information.
================================================================================
(Error Messages)::
MS-DOS version 3.10 or above is required
XMS manager not installed
DOS version is not compatible
Can't load in High Memory
An 80186 processor or better is required
Device Loader not found
================================================================================
(Warning Messages)::
Unknown option in command line
Unknown option on line #0000
Extra characters on command line
Missing or invalid option file XXXXXXXX.XXX
Line length overflow at line #0000
Drive Table Size not determined or out of range
================================================================================
(Advisory Messages)::
Use /Fpathname to override
Use /Dnn switch to set Drive Table size
================================================================================
(Report Messages)::
Processing option file XXXXXXXX.XXX
Effection section is [XXXXXXXX]
Drive Table Size set to 00h
[pathname] (/Fpathname parameter if error)
================================================================================
(Allocation Status)::
FREELOAD moved to 0000
Not enough Hi Memory for FREELOAD
================================================================================
(Changes)::
(Version 1.1)::
(1) Fixed problem where character devices were skipped if a
block device was loaded first
(2) Added support for block devices. This grew the size of
FREELOAD to 880 bytes so FREELOAD now shrinks to 16 bytes
when finished. This frees a .8k block of upper memory
which is not needed after all devices are loaded.
(Version 1.2)::
(1) Added support for character drivers which contain multiple
devices. There is a requirement for 16 bytes of low
memory for a multiple device driver, but this 16 bytes
supports an unlimited number of devices within the driver.
Without the 16 bytes, DOS believes the initialization of the
driver has failed and only the first device is linked.
(Version 1.3)::
(1) Fixed problem with failing to build a Drive Parameter Block
when a multiple device driver ended with a block device.
(2) Changed automatic reduce to a command line option. FREELOAD
now takes 1K bytes high. If the /S+ (shrink option is used)
this size is reduced to 16 bytes just before the shell is loaded.
(Version 1.4)::
(1) Improved multiple device failure mode. If a multiple device
driver has begun the initiate phase and fails, the high device
is left unlinked, and the loader is left in place with memory
and the device chain set to the length of the last successful
initialization. This method more closely emultates DOS.
(2) Added check that resets FREELOAD if the loader doesn't load the
device in high memory successfully.
(3) Optimized code to reduce memory requirement back to 1K
(Version 1.5)::
(1) Added base 10 display of Drive Table Size message
(Version 1.6)::
(1) Added support for DOS 5 UMB's when moving FREELOAD upto upper
memory. Some device loaders will work with DOS 5 UMB's, and
now you can use the loader instead of DEVICEHIGH= if you want.
(2) Added /Mn option, to allow general control of memory allocation
strategy. First Fit = 0, Best Fit = 1, and Last Fit = 2 were
implemented for both DOS 5 UMB's, and XMS UMB's.
(3) Added check for a 186 processor or better (allows V20/V30).
(4) Now supporting separate program FREELO86.SYS. This program is
functionally identical to FREELO86.SYS, but is compiled to work
on 8086/8088 processors also. The stub left in high memory
is 16 bytes greater using with this variation.
(Version 1.7)::
(1) Changed common parsing algorithum to add support for Hex-Notation
input. This input method is not used in FREELOAD at this time.
(2) Fixed case where device fails but the loader tells DOS the device
was ok. The high memory block is released, but the loader still
reserves low memory. FREELOAD linked the released driver, but now
detects the condition, does not complete the link, and releases
the stub.
(Version 1.8)::
(1) Added automatic support for 386LOAD.SYS from Qualitas. The proper
method FREELOAD uses is determined automatically, but may be
overridden with the /An switch. The option adds as much as
246 bytes to the pre-shrink size of FREELOAD.
(2) DOS 3.x and 4.x with FREELOAD and 386LOAD was crashing because
the 386LOAD stub hooked INT 21h, apparently to return a different
DOS version to the device being loaded. This "feature" is now
disabled by FREELOAD so that the stub may be freed. DOS 5 (and
above?) used func 4B05h (set execution state), so the hook checking
is bypassed. The hook checking is implemented for /A2 only (or
auto /A0).
(3) If method 2 (/A2 or 386MAX detected with /A0), the default loader
name is "C:\386MAX\386LOAD.SYS." This makes compatability with
386MAX completely transparent to the user in most cases.
(Version 1.9)::
(1) Reorganized code to enable an overlay method of module selection
to automate processor selection and split up .SYS and .EXE modules
to reduce the initialization memory to minimum.
(2) FREELOAD now automatically detects the processor type and chooses
separate code modules if appropriate. The 186 processor require-
ment of previous versions is no longer applicable.
(3) Added optional full word syntax to argument parser. The old style
single letter switch interface is still intact. The switch lists
now show the optional word with the switch.
(Version 2.0)::
(1) Added support for DOS 6.0's changes in the way devices are
initialized. FREELOAD 1.7 was not compatible with DOS 6.0 or
DBLSPACE. FREELOAD 2.0 now supports the new version seamlessly.
(2) Added support for loaders which build sub-segments for devices
in high memory. This caused problems while preparing block
devices.
(3) Added option response file input with @filename.opt syntax
(Version 2.1)::
(1) Fixed problem with finding DOS 6.0 CONFIG variable for machines
whose bios'es don't intialize memory properly.
(2) Fixed problem with some configurations of non-DOS 6.x systems
and non-DBLSPACE systems which caused an Exception 13 after
FREELOAD was loaded.
================================================================================